home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 2
/
Nebula Two.iso
/
SourceCode
/
Database
/
DateFormatter
/
DateTFCell.m
< prev
next >
Wrap
Text File
|
1995-06-12
|
2KB
|
72 lines
/* Generated by Interface Builder */
#import "DateTFCell.h"
#import <appkit/appkit.h>
@implementation DateTFCell
- select:(const NXRect *)aRect inView:controlView editor:textObj delegate:anObject start:(int)selStart length:(int)selLength
{
/* do what the superclass would do */
[super select:aRect inView:controlView editor:textObj delegate:anObject start:selStart length:selLength];
/* get the current text filter function */
oldTextFilter = [textObj textFilter];
/* set the filter func to be the custom function for DateTextField */
[textObj setTextFilter:(NXTextFilterFunc)dateFilter];
return self;
}
- edit:(const NXRect *)aRect inView:controlView editor:textObj delegate:anObject event:(NXEvent *)theEvent
{
/* do what the superclass would do */
[super edit:aRect inView:controlView editor:textObj delegate:anObject event:theEvent];
/* get the current text filter function */
oldTextFilter = [textObj textFilter];
/* set the filter func to be the custom function for DateTextField */
[textObj setTextFilter:(NXTextFilterFunc)dateFilter];
return self;
}
- endEditing:anObject
{
/* restore the original text filter function */
[anObject setTextFilter:(NXTextFilterFunc)oldTextFilter];
/* do whatever the superclass would do */
[super endEditing:anObject];
return self;
}
char *dateFilter(id textObj, char *inputText, int *inputLength, int position)
{
char temp[] = "";
/* The form of the date is MM/DD/YY. So find a '/' in position 2 and
* position 5. All other characters must be numbers but only 8
* characters allowed
*/
if ((position == 2) || (position == 5)) {
if (*inputText != '/') {
*inputLength = 0;
return (temp);
} else {
return (inputText);
}
} else if (position >= 8) {
*inputLength = 0;
return (temp);
} else if ((*inputText >= '0') && (*inputText <= '9')) {
return (inputText);
} else {
*inputLength = 0;
return (temp);
}
}
@end